package com.smart.community.region.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 店铺租金记录VO
 * 
 * @author Wu.Liang
 * @version 1.0.0
 * @since 2025-01-30
 */
@Data
@Schema(description = "店铺租金记录VO")
public class ShopRentRecordVO {
    
    /**
     * 记录ID
     */
    @Schema(description = "记录ID")
    private Long id;
    
    /**
     * 店铺ID
     */
    @Schema(description = "店铺ID")
    private Long shopId;
    
    /**
     * 店铺名称
     */
    @Schema(description = "店铺名称")
    private String shopName;
    
    /**
     * 店铺编码
     */
    @Schema(description = "店铺编码")
    private String shopCode;
    
    /**
     * 业主姓名
     */
    @Schema(description = "业主姓名")
    private String ownerName;
    
    /**
     * 租金金额
     */
    @Schema(description = "租金金额")
    private BigDecimal rentAmount;
    
    /**
     * 租金月份(YYYY-MM)
     */
    @Schema(description = "租金月份(YYYY-MM)")
    private String rentMonth;
    
    /**
     * 是否月度租金：0-否，1-是
     */
    @Schema(description = "是否月度租金：0-否，1-是")
    private Integer isMonthlyRent;
    
    /**
     * 租赁开始日期
     */
    @Schema(description = "租赁开始日期")
    private LocalDate leaseStartDate;
    
    /**
     * 租赁结束日期
     */
    @Schema(description = "租赁结束日期")
    private LocalDate leaseEndDate;
    
    /**
     * 租金期间
     */
    @Schema(description = "租金期间")
    private String rentPeriod;
    
    /**
     * 租金开始日期
     */
    @Schema(description = "租金开始日期")
    private LocalDate rentStartDate;
    
    /**
     * 租金结束日期
     */
    @Schema(description = "租金结束日期")
    private LocalDate rentEndDate;
    
    /**
     * 支付状态：0-未支付，1-已支付，2-逾期
     */
    @Schema(description = "支付状态：0-未支付，1-已支付，2-逾期")
    private Integer paymentStatus;
    
    /**
     * 支付状态名称
     */
    @Schema(description = "支付状态名称")
    private String paymentStatusName;
    
    /**
     * 支付日期
     */
    @Schema(description = "支付日期")
    private LocalDateTime paymentDate;
    
    /**
     * 支付方式
     */
    @Schema(description = "支付方式")
    private String paymentMethod;
    
    /**
     * 支付方式名称
     */
    @Schema(description = "支付方式名称")
    private String paymentMethodName;
    
    /**
     * 发票号码
     */
    @Schema(description = "发票号码")
    private String invoiceNumber;
    
    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;
    
    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    private LocalDateTime updateTime;
    
    /**
     * 创建人ID
     */
    @Schema(description = "创建人ID")
    private Long createBy;
    
    /**
     * 更新人ID
     */
    @Schema(description = "更新人ID")
    private Long updateBy;
    
    /**
     * 版本号（乐观锁）
     */
    @Schema(description = "版本号（乐观锁）")
    private Integer version;
    
    /**
     * 逻辑删除标识(0-正常,1-已删除)
     */
    @Schema(description = "逻辑删除标识(0-正常,1-已删除)")
    private Integer deleted;
}